/*
* 
* Fichier source projet intel Acceler8 sous license GNU GPL v3.
* Voir http://www.gnu.org/copyleft/gpl.html pour plus d'informations
* La license est egalement disponible dans le repertoire /doc
* 
* Cree le : mardi 08 novembre 2011 à 18 : 41.
* Auteurs : Axel MOINET et Arnaud DURAND.
* 
* Nom de fichier : readline.cpp
* Chemin du fichier : src/classes/readline/readline.cpp
* 
* Description : Classe d'abstraction pour pouvoir lire des lignes dans un fichier comme dans un flux.
* 			Utilisé par le pipeline de lecture.
* 
*/

#include "readline.h"
#include <string>

readLine::readLine() {
	//Erreur : pas de flux d'entree en parametre
}

readLine::readLine(char *filepath) {
	if(filepath == NULL) {
		//Envoyer une erreur
	}
	else {
		this->openFile(filepath);
		this->nbLigne = 0;
	}
}

readLine::~readLine() {
	this->closeFile();
}

int readLine::openFile(char *filepath) {
	this->fichier.open(filepath, std::ios::in);
	return 0;
}

std::string *readLine::readLineFct() {
	std::getline(this->fichier, this->ligneLue);
	if(this->ligneLue.size() > 0){
		std::string *stringRet = new std::string(this->ligneLue);
		this->nbLigne++;
		return stringRet;
	}
	else{
		return NULL;
	}
}

int readLine::printLine() {
	if(this->ligneLue.size() == 0)
		std::cout << "Rien n'a encore ete lu !" << std::endl;
	std::cout << ligneLue << std::endl;
	return 0;
}

int readLine::closeFile() {
	this->fichier.close();
	return 0;
}

int readLine::getNbLines() {
	return this->nbLigne;
}
